package com.note.app.config;

import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Contact;
import io.swagger.v3.oas.models.info.Info;
import io.swagger.v3.oas.models.info.License;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * Knife4j接口文档配置
 * 配置API文档生成规则和显示信息
 */
@Configuration
public class Knife4jConfig {

    @Value("${knife4j.host:localhost:8081}")
    private String host;

    @Value("${knife4j.base-path:/app}")
    private String basePath;

    /**
     * 配置API文档基本信息
     *
     * @return OpenAPI对象
     */
    @Bean
    public OpenAPI openAPI() {
        // 构建服务器URL，将host和basePath拼接
        String serverUrl = host + basePath;

        return new OpenAPI()
                .info(new Info()
                        .title("笔记服务API文档")
                        .description("提供用户管理、笔记管理、标签管理等功能接口")
                        .version("1.0.0")
                        .contact(new Contact()
                                .name("热伊木")
                                .email("uyevan@163.com"))
                        .license(new License()
                                .name("Apache 2.0")
                                .url("https://www.apache.org/licenses/LICENSE-2.0.html")))
                // 从配置中读取host和base-path
                /*.servers(Collections.singletonList(
                        new Server()
                                .url(serverUrl)
                                .description("通过网关访问的路径前缀 (" + host + ")")
                ))*/
                ;
    }
} 